package com.shujia.wyh.day13.ketang;

/*

    猫狗案例使用抽象类改进
        猫：
           属性：姓名、年龄
           行为：吃（猫吃鱼），睡（猫蜷着睡）
        狗：
           属性：姓名、年龄
           行为：吃（狗吃肉），睡（狗躺着睡）

    所以向上提取一个抽象父类：动物
        Animal:
            成员变量：name,age
            成员方法：eat(),sleep()(用抽象方法改进)


 */
abstract class Animal2{
    String name;
    int age;

    //定义抽象的吃方法
    public abstract void eat();
    //定义抽象的睡方法
    public abstract void sleep();
}

class Dog2 extends Animal2{

    @Override
    public void eat() {
        System.out.println("狗吃肉");
    }

    @Override
    public void sleep() {
        System.out.println("狗躺着睡");
    }
}

class Cat2 extends Animal2{

    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

    @Override
    public void sleep() {
        System.out.println("猫蜷着睡");
    }
}


public class AbstractDemo2 {
    public static void main(String[] args) {
        //用抽象多态的方式创建一个狗对象
        Animal2 a = new Dog2();
        a.eat();
        a.sleep();
        System.out.println("===================");
        //用抽象多态的方式创建一个猫对象
        Animal2 a2 = new Cat2();
        a2.eat();
        a2.sleep();


    }
}
